ostree.git
8 years agoAdd a notion of "physical" sysroot, use for remote writing
Colin Walters [Tue, 30 May 2017 18:07:13 +0000 (14:07 -0400)]
Add a notion of "physical" sysroot, use for remote writing

(Note this PR was reverted in <https://github.com/ostreedev/ostree/pull/902>;
 this version should be better)

Using `${sysroot}` to mean the physical storage root: We don't want to write to
`${sysroot}/etc/ostree/remotes.d`, since nothing will read it, and really
`${sysroot}` should just have `/ostree` (ideally). Today the Anaconda rpmostree
code ends up writing there. Fix this by adding a notion of "physical" sysroot.
We determine whether the path is physical by checking for `/sysroot`, which
exists in deployment roots (and there shouldn't be a `${sysroot}/sysroot`).

In order to unit test this, I added a `--sysroot` argument to `remote add`.
However, doing this better would require reworking the command line parsing for
the `remote` argument to support specifying `--repo` or `--sysroot`, and I
didn't quite want to do that yet in this patch.

This second iteration of this patch fixes the bug we hit the first time;
embarassingly enough I broke `ostree remote list` finding system remotes.
The fix is to have `ostree_repo_open()` figure out whether it's the same
as `/ostree/repo` for now.

Down the line...we might consider having the `ostree remote` command line itself
instatiate an `OstreeSysroot` by default, but this maximizes compatibility; we
just have to pay a small cost that `ostree` usage outside of that case like
`ostree static-delta` in a releng Jenkins job or whatever will do this `stat()`
too.

Closes: https://github.com/ostreedev/ostree/issues/892
Closes: #1008
Approved by: mbarnes

8 years agolib/pull: Do local content imports async too
Colin Walters [Fri, 14 Jul 2017 16:51:21 +0000 (16:51 +0000)]
lib/pull: Do local content imports async too

This came up in <https://github.com/ostreedev/ostree/pull/982>; when
we added more direct local importing, we did it synchronously.

This was actually quite a regression when doing local pulls between different
modes; in particular between a bare mode and `archive`, as we were suddenly
doing gzip {de,}compression in the main thread.

Down the line actually...a simpler fix is probably to change things so that the
local path is really only used when we know we can hardlink; everything else
would go though the fetcher codepath but with `file://`.

But this isn't a lot more code, and the speed/interactivity win is large.

Note we're only doing content async with this patch. We could do metadata as
well; we have the object already local. But the metadata code path is messier,
and metadata objects are smaller.

Another area where this comes up is that in e.g. Fedora releng, most operations
talk to a NetApp via NFS. So this has the classic network filesystem problem
that operations that are normally cheap like `stat()` can actually have
nontrivial latency. Doing as much as possible in threads is better there too.

Closes: #1006
Approved by: jlebon

8 years agoci/papr: Update to F26
Colin Walters [Tue, 18 Jul 2017 09:59:04 +0000 (05:59 -0400)]
ci/papr: Update to F26

In particular F25AH will stop getting updates.

Closes: #1012
Approved by: jlebon

8 years agoMove the include directive to the enum template
Emmanuele Bassi [Mon, 17 Jul 2017 14:44:58 +0000 (15:44 +0100)]
Move the include directive to the enum template

There is no actual written guarantee in glib-mkenums that the template
line specified using --fhead will be added after the templates specified
inside the template file. Since the template file is only used once, we
can simply move the `#include` directive inside the template, so that it
is guaranteed to be in the right place.

Closes: #1007
Approved by: cgwalters

8 years agolib/pull: Avoid journaling 404s for optional content
Colin Walters [Wed, 5 Jul 2017 20:41:38 +0000 (16:41 -0400)]
lib/pull: Avoid journaling 404s for optional content

Currently in Fedora we don't sign summaries, and every use of
`rpm-ostree` would emit to the journal an error when we failed
to fetch it.

Fix this by having `OSTREE_FETCHER_REQUEST_OPTIONAL_CONTENT` tell the fetcher
not to journal 404 errors. While fixing this, we had a mix of two booleans vs
the flags; fix things so we consistently use the flags in the fetcher and pull
code.

Closes: #1004
Approved by: mbarnes

8 years agobuild: Ensure all experimental tests are distributed in tarballs
Philip Withnall [Wed, 12 Jul 2017 14:04:34 +0000 (15:04 +0100)]
build: Ensure all experimental tests are distributed in tarballs

As with the previous commit, ensure that tests which are run when
configured with --enable-experimental-api, are always distributed; even
when running `make dist` from a source tree configured with
--disable-experimental-api.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #1002
Approved by: cgwalters

8 years agobuild: Ensure all .sym files are distributed in tarballs
Philip Withnall [Wed, 12 Jul 2017 12:58:16 +0000 (13:58 +0100)]
build: Ensure all .sym files are distributed in tarballs

Since we’re using a custom variable for listing the .sym files,
automake’s magic support for automatically distributing all files in
conditionals doesn’t work, and the devel and experimental .sym files
were only being distributed if `make dist` was run on a source tree
which had been configured with --enable-experimental-api or not a
release flag.

Fix that by explicitly listing all the .sym files in EXTRA_DIST.

Specifically, this fixes the case of trying to compile with
--enable-experimental-api from a release tarball which was disted with
--disable-experimental-api.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #1001
Approved by: cgwalters

8 years agolib/repo: Add OSTREE_REPO_METADATA_REF as a well-known metadata store
Philip Withnall [Tue, 11 Jul 2017 19:46:03 +0000 (20:46 +0100)]
lib/repo: Add OSTREE_REPO_METADATA_REF as a well-known metadata store

As discussed in https://github.com/ostreedev/ostree/pull/946, the
summary file is becoming an unsigned cache of ref information; any
additional metadata for the repository needs to move elsewhere in order
to remain signed. Introduce OSTREE_REPO_METADATA_REF as the well-known
name of a ref where such metadata can live, as the metadata on
contentless commits.

Don’t yet update the documentation for summary-related methods to
mention this, since it’s still hidden behind the
--enable-experimental-api configure option.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #946
Approved by: cgwalters

8 years agolib/repo-commit: Fix types of content size cache entries
Philip Withnall [Mon, 10 Jul 2017 18:48:52 +0000 (19:48 +0100)]
lib/repo-commit: Fix types of content size cache entries

Use goffset rather than gsize for file sizes. More importantly, get the
unpacked_size from g_file_info_get_size() (goffset) rather than from the
splice return value, which has type gssize.

This will make a difference on 32-bit systems, where goffset is defined
as off64_t, but gsize is 32 bits.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #999
Approved by: cgwalters

8 years agotests: Run pull tests for bare/bare-user
Colin Walters [Mon, 10 Jul 2017 01:46:23 +0000 (21:46 -0400)]
tests: Run pull tests for bare/bare-user

We have variants of `test-basic` for all 4 modes, but not for pull-test, which
for some reason was named `pull-archive`, but mostly pulls *into* bare repos.
The test code was structured like the basic one where it called into a
`pull-test.sh`, so let's actually use it for 2/3 bare modes. (I tried to extend
it to `bare-user-only` but it failed, going to look at that after this).

This is related to https://github.com/ostreedev/ostree/issues/991

Closes: #998
Approved by: jlebon

8 years agocheckout: Don't set dir mtime to 0 when doing a force copy checkout
Colin Walters [Fri, 7 Jul 2017 01:33:59 +0000 (21:33 -0400)]
checkout: Don't set dir mtime to 0 when doing a force copy checkout

When we [switched to using checkout + force_copy](https://github.com/ostreedev/ostree/commit/e8efd1c8dcaad8fbd3b05c400972d237406263e7),
a side effect that went unnoticed at the time is that we started
setting directory mtimes to zero.

See the below bug where we long ago set the file times to zero, which got fixed,
so let's not regress things by setting the directory times to zero either. (Even
though AFAICS GNU tar doesn't complain about those)

This semantic is somewhat "overloaded" onto `force_copy`, but it avoids adding
yet another boolean; we don't have that many reserved boolean slots left. I
can't really think of many good use cases for `force_copy` *other* than the
`/etc` merge anyways.

https://bugzilla.redhat.com/show_bug.cgi?id=1229160

Closes: https://github.com/ostreedev/ostree/issues/995
Closes: #997
Approved by: jlebon

8 years agodeploy: Port some functions to new style
Colin Walters [Thu, 6 Jul 2017 21:04:13 +0000 (17:04 -0400)]
deploy: Port some functions to new style

There are a number of simple ports here.  Prep for further work
in `/etc` merge.

I also stripped trailing whitespace globally.

Closes: #996
Approved by: jlebon

8 years agotests: New tests for creating commits with bindings and pulling them
Krzesimir Nowak [Wed, 28 Jun 2017 10:46:02 +0000 (12:46 +0200)]
tests: New tests for creating commits with bindings and pulling them

Closes: #972
Approved by: cgwalters

8 years agolib/pull: Collection and ref bindings verification
Krzesimir Nowak [Thu, 22 Jun 2017 20:42:30 +0000 (22:42 +0200)]
lib/pull: Collection and ref bindings verification

This verifies the collection and ref bindings in the commit metadata
against the collection ID we have stored in the remote config and ref
we want to pull from. For the HEAD commits, we also check if the
checksum of the commit we just fetched agrees with the checksum we
really wanted to pull from the ref.

For commits with explicitly specified checksums and without specified
refs, we only verify if the commit has the bindings. We are able to
only verify the collection binding, though.

Closes: #972
Approved by: cgwalters

8 years agolib/pull: Pass the ref together with the request
Krzesimir Nowak [Fri, 30 Jun 2017 14:27:33 +0000 (16:27 +0200)]
lib/pull: Pass the ref together with the request

We will want to use the requested ref later for the binding
verification.

Closes: #972
Approved by: cgwalters

8 years agoostree: Add collection and ref bindings to metadata on commit
Krzesimir Nowak [Thu, 22 Jun 2017 19:49:22 +0000 (21:49 +0200)]
ostree: Add collection and ref bindings to metadata on commit

The collection and ref bindings are stored in the commit metadata
under ostree.collection-binding and ostree.ref-binding,
respectively. They will be used to verify if the commit really comes
from the collection and ref we wanted to pull from.

Closes: #972
Approved by: cgwalters

8 years agobuild-sys: Post-release version bump
Colin Walters [Wed, 5 Jul 2017 20:43:42 +0000 (16:43 -0400)]
build-sys: Post-release version bump

Closes: #994
Approved by: jlebon

8 years agoRelease 2017.8
Colin Walters [Wed, 5 Jul 2017 20:42:34 +0000 (16:42 -0400)]
Release 2017.8

Closes: #994
Approved by: jlebon

8 years agolib/repo: Immediately error creating bare-user repo on tmpfs
Colin Walters [Wed, 5 Jul 2017 14:50:34 +0000 (10:50 -0400)]
lib/repo: Immediately error creating bare-user repo on tmpfs

And in general, if for some reason we can't write `user.` xattrs, provide an
error immediately rather than doing it during a later pull. This way the failure
cause is a lot more obvious.

Related: https://github.com/ostreedev/ostree/issues/991

Closes: #993
Approved by: jlebon

8 years agopull: Cleanly error when doing local pulls of remote-prefixed refs
Colin Walters [Tue, 4 Jul 2017 10:55:51 +0000 (06:55 -0400)]
pull: Cleanly error when doing local pulls of remote-prefixed refs

In the storage PR I was trying to do a `pull-local` of the whole
`/ostree/repo` on the system, which ended up triggering a `g_critical()`
in the collections code, since we tried to parse a remote-prefixed ref
`fedora:fedora/26/x86_64/atomic-host` as a ref.

I'm not sure offhand what our behavior in this case *should* be.  I
think git only clones local refs, but I need to check.

This corner case arises only with `pull-local`.  But in any case,
while we were previously saying this is programmer error, since it's
so easy to pass various unchecked input into the pull machinery,
make invalid refs an explicit error.

Closes: #992
Approved by: jlebon

8 years agolib/repo: Add min-free-space-percent option, default 3%
Colin Walters [Thu, 29 Jun 2017 20:51:56 +0000 (16:51 -0400)]
lib/repo: Add min-free-space-percent option, default 3%

For ostree-as-host, we're the superuser, so we'll blow past
any reserved free space by default.  While deltas have size
metadata, if one happens to do a loose fetch, we can fill
up the disk.

Another case is flatpak: the system helper has similar concerns
here as ostree-as-host, and for `flatpak --user`, we also
want to be nice and avoid filling up the user's quota.

Closes: https://github.com/ostreedev/ostree/issues/962
Closes: #987
Approved by: jlebon

8 years agolib/commit: Use provided length when doing writes
Colin Walters [Thu, 29 Jun 2017 19:58:05 +0000 (15:58 -0400)]
lib/commit: Use provided length when doing writes

This is prep for storage space checks, where we look at free
space after parsing the metadata, before we write anything.

We did length-limited writes in the fd-based input path, but not for the
`GInputStream` path which in practice is used for HTTP pulls.

Closes: #987
Approved by: jlebon

8 years agolib/commit: Ensure bare-user objects are always user-readable
Colin Walters [Fri, 30 Jun 2017 13:40:47 +0000 (09:40 -0400)]
lib/commit: Ensure bare-user objects are always user-readable

Some of the Jenkins jobs for Fedora Atomic Host broke after updating
to 2017.7, and it turns out that we regressed handling unreadable
files in `bare-user` mode.  An example of this is `/etc/shadow`, which
ends up in the ostree-as-host content as `/usr/etc/shadow`.

Now there are better fixes here; we should probably delete it and create it
during the config merge if it doesn't exist.  In general, having secret files in
ostree really isn't supported, so it doesn't make sense to include them.

But let's fix this regression - when operating as an unprivileged user we don't
have `CAP_DAC_OVERRIDE` and hence will fail to open un-user-readable objects.

(We still preserve the actual `0` mode of course in the xattr and will
 apply it in `bare`)

Closes: #989
Approved by: jlebon

8 years agobin/commit: Add '=' to --statoverride
Colin Walters [Fri, 30 Jun 2017 13:40:37 +0000 (09:40 -0400)]
bin/commit: Add '=' to --statoverride

Previously, we only supported additions in the statoverride file;
it was mainly for adding the setuid bit without having that physically
on disk.

However, for testing a change to `bare-user` handling around *unreadable*
files (which happens for `/etc/shadow` in host content), I need a way
to write that into a repo in the test suite.

I'm not actually aware of a non-test-suite use case for this; a more
sophisticated user is going to be using the API directly, which can already do
this. But we need it for tests at least.

Closes: #989
Approved by: jlebon

8 years agobin/commit: Port helper functions to new style
Colin Walters [Fri, 30 Jun 2017 13:19:43 +0000 (09:19 -0400)]
bin/commit: Port helper functions to new style

Prep for more work here.  Can't yet port the main function
without a cleanup for transactions.

Closes: #988
Approved by: jlebon

8 years agolib/commit: Fix a tmpfile fd leak in static delta processing
Colin Walters [Fri, 30 Jun 2017 01:45:26 +0000 (21:45 -0400)]
lib/commit: Fix a tmpfile fd leak in static delta processing

I had thought `glnx_link_tmpfile_at()` actually consumed the tmpfile;
it does consume the *path* but not the fd.  In the non-delta path
things were fine since we used the autocleanup.

But the delta code had a tmpfile allocated in its struct that got reused, and
hence leaked the fd. Fix this by making the commit API actually consume the
tmpfile fully, just like the path path.

Closes: #986
Approved by: jlebon

8 years agoAdd "pull --localcache-repo"
Colin Walters [Thu, 29 Jun 2017 02:19:15 +0000 (22:19 -0400)]
Add "pull --localcache-repo"

This is a lot like `git clone --reference`, but we chose "localcache" as the
term "reference" is already used.

The main use case I'm targeting this for is the Fedora Atomic Host installer
case where we embed the repo content in the installer, but we may want to
kickstart and download newer content. There, while we want to get a newer ref,
we can still use the local repo as an object cache, since we have it sitting
there in memory anyways.

Another case is where one has a host ostree (say e.g. Fedora Atomic
Workstation), and one wants to create a local archive mirror of FAH. Then one
can use `pull --reference /ostree/repo` and pull the common objects (e.g.
contents of `bash.rpm` etc.)

Closes: https://github.com/ostreedev/ostree/issues/975
Closes: #982
Approved by: jlebon

8 years agolib/pull: Move check for requested content earlier
Colin Walters [Thu, 29 Jun 2017 19:01:16 +0000 (15:01 -0400)]
lib/pull: Move check for requested content earlier

This is prep for a later patch; currently the logic is unchanged, but we'll need
this if we make local imports async.

Closes: #982
Approved by: jlebon

8 years agopull: fix GLNX_HASH_TABLE_FOREACH_KV regressions
Jonathan Lebon [Fri, 30 Jun 2017 16:01:56 +0000 (09:01 -0700)]
pull: fix GLNX_HASH_TABLE_FOREACH_KV regressions

These are regression from #971. We were stuffing a pointer size inside a
variable of integer size. So the assignment was spilling over into other
variables' storage space. Actually use a gpointer and GPOINTER_TO_[U]INT
as was done originally.

Also bump libglnx which has static checks for this error in the future.

Update submodule: libglnx

Closes: #990
Approved by: cgwalters

8 years agolib/repo: Fix repo-finder deleting remote configs when run
Philip Withnall [Thu, 29 Jun 2017 23:43:31 +0000 (00:43 +0100)]
lib/repo: Fix repo-finder deleting remote configs when run

An inverted condition in _ostree_repo_add_remote() was causing the
OstreeRepoFinder to delete precisely the wrong remote
configurations from memory once it was finished. It’s supposed to delete
the ones which it transiently added; but was instead deleting all the
existing remote configurations.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #985
Approved by: cgwalters

8 years agolib/commit: Port a few minor functions to new style
Colin Walters [Thu, 29 Jun 2017 20:54:38 +0000 (16:54 -0400)]
lib/commit: Port a few minor functions to new style

Not sure why these weren't converted before.

Closes: #984
Approved by: jlebon

8 years agolib: Add a helper to convert struct stat → GFileInfo
Colin Walters [Wed, 28 Jun 2017 20:09:37 +0000 (16:09 -0400)]
lib: Add a helper to convert struct stat → GFileInfo

It's more natural for a few calling places. Prep for patches to go the other
way, which in turn are prep for adding a commit filter v2 that takes `struct
stat`.

`ot_gfile_type_for_mode()` was only used in this function, so inline it here.

Closes: #974
Approved by: jlebon

8 years agocmdline/pull: Print final status even if noninteractive
Colin Walters [Thu, 29 Jun 2017 14:23:32 +0000 (10:23 -0400)]
cmdline/pull: Print final status even if noninteractive

Previously, `ostree pull` was silent if not on a tty.  I don't
see a reason not to print the final status line at least.  This
is prep for more work in the test suite, so I can write assertions
on the output.

But it should also be nicer for people who e.g. do an `ostree pull` in a Jenkins
job or whatever.

Closes: #981
Approved by: jlebon

8 years agotree-wide: Replace various uses of `archive-z2` → `archive`
Colin Walters [Thu, 29 Jun 2017 02:52:40 +0000 (22:52 -0400)]
tree-wide: Replace various uses of `archive-z2` → `archive`

The `-z2` is annoying now since it's really a legacy; we've long
since supported typing `archive`.  Convert the docs fully and
explain that.

Also do some (but not all) of the tests just to encourage newer tests to use
`archive` too.

Closes: #980
Approved by: jlebon

8 years agolib/pull: Don't fetch detached metadata twice for local pulls
Colin Walters [Thu, 29 Jun 2017 02:23:17 +0000 (22:23 -0400)]
lib/pull: Don't fetch detached metadata twice for local pulls

Obviously very minor, but I noticed this while working on `pull --reference`. If
we have a local repo, we'll have already done a hardlink and copied the detached
metadata too, so there's no reason to request it again via the fetcher path.

Closes: #978
Approved by: jlebon

8 years agotests: Fix assert_files_hardlinked
Colin Walters [Thu, 29 Jun 2017 01:39:16 +0000 (21:39 -0400)]
tests: Fix assert_files_hardlinked

It was always succeeding because we were trying to stat the inode number, and
failing, and thus getting the empty string for both, which compared as true.

Regression from:
<https://github.com/ostreedev/ostree/commit/74e3581e>

Noticed this while working on
<https://github.com/ostreedev/ostree/pull/974>
and looking at the test results.

Closes: #976
Approved by: jlebon

8 years agolib/pull: Some small style porting
Colin Walters [Thu, 29 Jun 2017 02:28:29 +0000 (22:28 -0400)]
lib/pull: Some small style porting

I'd mostly been avoiding this file since there's always patches outstanding, but
these few functions shouldn't conflict much.

Closes: #979
Approved by: jlebon

8 years agolib/repo: Port bareuser-conversion stat to bare load
Colin Walters [Thu, 29 Jun 2017 01:50:10 +0000 (21:50 -0400)]
lib/repo: Port bareuser-conversion stat to bare load

I noticed this is a simple call that's useful to port to the new internal-only
non-allocating API.

Closes: #977
Approved by: jlebon

8 years agolib/deltas: More porting to new code style
Colin Walters [Wed, 28 Jun 2017 17:55:19 +0000 (13:55 -0400)]
lib/deltas: More porting to new code style

Just noticed some of this while working on the previous tmpfile bits.

Closes: #973
Approved by: jlebon

8 years agolib/commit: Refactor non-failable size indexing function
Colin Walters [Wed, 28 Jun 2017 17:54:00 +0000 (13:54 -0400)]
lib/commit: Refactor non-failable size indexing function

It can't throw, so remove the `GError` machinery.

Closes: #973
Approved by: jlebon

8 years agolibutil: Add a helper for O_TMPFILE + mmap()
Colin Walters [Wed, 28 Jun 2017 17:41:52 +0000 (13:41 -0400)]
libutil: Add a helper for O_TMPFILE + mmap()

I added `glnx_open_anonymous_tmpfile()`, but then later noticed
that the usage of this was really to be combined with `mmap()`,
and we had two versions of that in the delta code.  Add a helper.

(Bigger picture...how is this different from glibc's "mmap() of /dev/zero"
 approach for large chunks? One advantage is the storage can be "swapped" to
 `/var/tmp`, but still deleted automatically, rather than requiring swap space)

Closes: #973
Approved by: jlebon

8 years agoci: unconditionally turn on -Werror
Jonathan Lebon [Wed, 28 Jun 2017 15:59:36 +0000 (08:59 -0700)]
ci: unconditionally turn on -Werror

Closes: #971
Approved by: cgwalters

8 years agocodebase: start using GLNX_HASH_TABLE_FOREACH macros
Jonathan Lebon [Wed, 28 Jun 2017 15:06:50 +0000 (08:06 -0700)]
codebase: start using GLNX_HASH_TABLE_FOREACH macros

Use the new macros introduced recently in libglnx to make iterating over
hash tables cleaner. This is just a start, it does not migrate the whole
tree.

Update submodule: libglnx

Closes: #971
Approved by: cgwalters

8 years agotree-wide: Misc porting to newer libglnx APIs
Colin Walters [Wed, 28 Jun 2017 01:26:17 +0000 (21:26 -0400)]
tree-wide: Misc porting to newer libglnx APIs

 - Use the new tmpfile bits
 - `glnx_try_fallocate`
 - `glnx_renameat()`

Depends: https://github.com/GNOME/libglnx/pull/57

Update submodule: libglnx

Closes: #970
Approved by: jlebon

8 years agoPort to GLnxTmpfile
Colin Walters [Sat, 24 Jun 2017 14:06:53 +0000 (14:06 +0000)]
Port to GLnxTmpfile

There's lots of mechanically replacing `OtTmpFile` with `GLnxTmpfile`;
the biggest changes are in the commit path.  Symlink commits are now
very clearly separated from regular files.  Symlinks are `OtCleanupUnlinkat`,
and regular files are `GLnxTmpfile`.

The commit codepath separates those as `_ostree_repo_commit_path_final()` and
`_ostree_repo_commit_tmpf_final()`. A nice aspect of all of this is that they
both *consume* the temporary on success. This avoids an extra spurious
`unlink()` call.

One of the biggest bits of code motion is in `commit_loose_regfile_object()`,
which no longer needs to care about symlinks. For the most parth though it's
just removing conditionals.

Update submodule: libglnx

Closes: #958
Approved by: jlebon

8 years agotest-switchroot.sh: skip if no busybox
Jonathan Lebon [Tue, 27 Jun 2017 21:25:56 +0000 (14:25 -0700)]
test-switchroot.sh: skip if no busybox

Closes: #968
Approved by: cgwalters

8 years agopapr: build and test on c7
Jonathan Lebon [Tue, 27 Jun 2017 20:39:27 +0000 (13:39 -0700)]
papr: build and test on c7

Start testing on CentOS 7 as well to cover kernel differences (e.g.
O_TMPFILE support).

Closes: #968
Approved by: cgwalters

8 years agoci: Actually run installed tests again
Colin Walters [Tue, 27 Jun 2017 21:07:11 +0000 (17:07 -0400)]
ci: Actually run installed tests again

We did it *again* 😭

Closes: #969
Approved by: jlebon

8 years agolib/pull: Use ostree_repo_verify_summary() to verify summary on pull
Philip Withnall [Fri, 23 Jun 2017 15:10:03 +0000 (16:10 +0100)]
lib/pull: Use ostree_repo_verify_summary() to verify summary on pull

Rather than duplicating the code. This introduces no functional changes.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #961
Approved by: cgwalters

8 years agolib/pull: Check whether summary is in normal form when loading it
Philip Withnall [Mon, 19 Jun 2017 14:58:08 +0000 (15:58 +0100)]
lib/pull: Check whether summary is in normal form when loading it

Check that it’s in normal form and has the correct type when loading it,
since it could come from an untrusted source.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #961
Approved by: cgwalters

8 years agolib/pull: Don’t cache summary file until its signature is verified
Philip Withnall [Mon, 19 Jun 2017 14:26:50 +0000 (15:26 +0100)]
lib/pull: Don’t cache summary file until its signature is verified

This makes no difference to the validity of the code, since any summary
file loaded from the cache will be verified before being read anyway;
but it will make some upcoming changes a little simpler.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #961
Approved by: cgwalters

8 years agoostree/summary: Add support for adding additional metadata
Philip Withnall [Thu, 22 Jun 2017 14:16:53 +0000 (15:16 +0100)]
ostree/summary: Add support for adding additional metadata

When updating a summary file, parse additional arguments to the `ostree
summary` command as additional metadata to be put into the summary.

Add some tests for this.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #961
Approved by: cgwalters

8 years agotests: Fix incorrect `summary --update` usage in test-local-pull.sh
Philip Withnall [Fri, 23 Jun 2017 20:44:29 +0000 (21:44 +0100)]
tests: Fix incorrect `summary --update` usage in test-local-pull.sh

Previously the spurious ‘update’ atom was ignored; now that `ostree
summary --update` accepts extra arguments as additional metadata, it’s
causing an error. Drop it.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #961
Approved by: cgwalters

8 years agolib/repo: Fix a typo in a documentation comment
Philip Withnall [Mon, 19 Jun 2017 22:29:55 +0000 (23:29 +0100)]
lib/repo: Fix a typo in a documentation comment

Looks like a copy-paste error.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #961
Approved by: cgwalters

8 years agopull: Check free space when pulling deltas
Colin Walters [Mon, 26 Jun 2017 19:10:57 +0000 (15:10 -0400)]
pull: Check free space when pulling deltas

Computing download/storage size for `archive` pulls is hard; there's
`OSTREE_REPO_COMMIT_MODIFIER_FLAGS_GENERATE_SIZES` which was from a
pre-static-deltas effort by Endless, but we aren't currently making use of this
much.

Static deltas were designed to solve this problem; we have the total
uncompressed size. Let's check free space before doing a delta pull.

Related: https://github.com/ostreedev/ostree/issues/962

Closes: #963
Approved by: jlebon

8 years agobuild: Don't scan ostree-remote.h for introspection if !experimental-api
Colin Walters [Tue, 27 Jun 2017 16:57:47 +0000 (12:57 -0400)]
build: Don't scan ostree-remote.h for introspection if !experimental-api

It's a bit unfortunate that the scanner doesn't error on this, but
anyways

Closes: https://github.com/ostreedev/ostree/issues/966
Closes: #967
Approved by: jlebon

8 years agolib/deltas: Some style porting
Colin Walters [Mon, 26 Jun 2017 22:07:44 +0000 (18:07 -0400)]
lib/deltas: Some style porting

Just a few functions to keep up momentum.

Closes: #964
Approved by: jlebon

8 years agoci: Make introspection warnings fatal
Colin Walters [Mon, 26 Jun 2017 22:12:33 +0000 (18:12 -0400)]
ci: Make introspection warnings fatal

Closes: #965
Approved by: pwithnall

8 years agolib/ref: Suppress more collection ref methods from introspection
Colin Walters [Mon, 26 Jun 2017 22:11:40 +0000 (18:11 -0400)]
lib/ref: Suppress more collection ref methods from introspection

This squashes some warnings.

Closes: #965
Approved by: pwithnall

8 years agolib/commit: Fix fallocate size for bare-user symlinks
Colin Walters [Mon, 26 Jun 2017 16:30:21 +0000 (12:30 -0400)]
lib/commit: Fix fallocate size for bare-user symlinks

We need to account for the trailing NUL.

Closes: #957
Approved by: jlebon

8 years agolib: Use OtTmpFile for static delta processing
Colin Walters [Sat, 24 Jun 2017 14:28:09 +0000 (10:28 -0400)]
lib: Use OtTmpFile for static delta processing

The `OstreeRepoContentBareCommit` struct was basically an `OtTmpFile`, so let's
make it one. I moved the "convert to `GOutputStream`" logic into the callers,
since that bit can't fail; it makes the implementation much simpler since we can
just return the result of `ot_open_tmpfile_linkable_at()`.

Prep for `GLnxTmpfile` porting.

Closes: #957
Approved by: jlebon

8 years agolib: Hoist unlinkat() cleanup API to fsutil, use in pull
Colin Walters [Sat, 24 Jun 2017 13:30:02 +0000 (09:30 -0400)]
lib: Hoist unlinkat() cleanup API to fsutil, use in pull

The pull code also could make use of this in both the metadata and content
paths. I changed it to own the tempfile malloc (just like `GLnxTmpFile`), since
there's no reason to have different lifetimes for the filename and the file, and
that way we only have one variable rather than two.

The content path turns out to be a special case though, where
at least for mirroring archives, we directly pass the file *path*
down into `_ostree_repo_commit_loose_final()`.

This is prep for `GLnxTmpFile` porting.

Closes: #957
Approved by: jlebon

8 years agolib/commit: Clean up commit file type handling variables
Colin Walters [Fri, 23 Jun 2017 21:13:15 +0000 (17:13 -0400)]
lib/commit: Clean up commit file type handling variables

The variables here were duplicative; we don't need two booleans to distinguish
between symlinks and regular files. What we do need to handle is the "physical"
state versus the "object" state. Symlinks objects are stored as regular files in
`bare-user` and `archive`.

Prep for more cleanup.

Closes: #957
Approved by: jlebon

8 years agolib/refs: Add runtime error checking for collection ID validity
Philip Withnall [Fri, 23 Jun 2017 14:55:19 +0000 (15:55 +0100)]
lib/refs: Add runtime error checking for collection ID validity

Instead of treating it as a programming error — given that it’s user
input, that’s not really appropriate. This modifies write_ref() and
list_collection_refs() to implement validation.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agotests: Add integration tests for collections
Philip Withnall [Tue, 13 Jun 2017 17:55:53 +0000 (18:55 +0100)]
tests: Add integration tests for collections

Test various pieces of core and command line utility functionality
relating to the newly-introduced concept of collections. Mostly focussed
around the find-remotes utility, and around handling of collection–refs.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agoostree/builtins: Add support for collection–refs to a few utilities
Philip Withnall [Fri, 9 Jun 2017 17:45:39 +0000 (18:45 +0100)]
ostree/builtins: Add support for collection–refs to a few utilities

These utilities were not needed for the initial port to support
OstreeCollectionRef, so have been delayed a bit and, in some cases, left
as FIXME comments for follow up later.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agoostree/dump: Include collection IDs and mirrored refs in summary dumps
Philip Withnall [Wed, 7 Jun 2017 13:53:58 +0000 (14:53 +0100)]
ostree/dump: Include collection IDs and mirrored refs in summary dumps

If a repository’s summary file includes a collection ID, output that. If
it includes refs from other collections (in the ‘collection map’), output
those and include the same metadata detail as for refs in the summary
file’s main refs map.

If collection IDs are specified in the summary file, this changes the
output format from `ostree summary -v` to use (collection ID, ref name)
tuples.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agorefs: Add a --collections argument to the built-in refs command
Philip Withnall [Wed, 7 Jun 2017 13:51:58 +0000 (14:51 +0100)]
refs: Add a --collections argument to the built-in refs command

Rather than change the output format used by the existing refs command
to output collection IDs in addition to ref names, this functionality has
been hidden behind an --collections argument. If it’s not specified `ostree
refs` will output the same content as before for a given repository. If
it is specified, the collection ID for each ref will be included in the
output as (collection ID, ref name).

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agoremote-add: Add a --collection-id argument to the built-in add command
Philip Withnall [Wed, 7 Jun 2017 13:50:51 +0000 (14:50 +0100)]
remote-add: Add a --collection-id argument to the built-in add command

This allows newly configured remotes to have their collection ID specified,
so that refs from them can be downloaded from peers as well as the
upstream collection, using the remote’s configuration.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agoinit: Add a --collection-id argument to the built-in init command
Philip Withnall [Wed, 7 Jun 2017 13:48:35 +0000 (14:48 +0100)]
init: Add a --collection-id argument to the built-in init command

This allows new repositories to be configured with a collection ID which
can be used to uniquely identify refs which originated from this
repository.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agofind-remotes: Add pull support to the find-remotes built-in command
Philip Withnall [Thu, 4 May 2017 09:47:23 +0000 (10:47 +0100)]
find-remotes: Add pull support to the find-remotes built-in command

This will pull the remotes after finding them. This potentially needs to
go in its own pull-from-remotes built-in command, but it will be fine
here for now.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agofind-remotes: Add a find-remotes built-in command
Philip Withnall [Tue, 25 Apr 2017 18:10:04 +0000 (19:10 +0100)]
find-remotes: Add a find-remotes built-in command

This is a wrapper around the new ostree_repo_find_remotes() method; it
tries to find available remotes which can serve updates for the
user-provided refs.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/repo-finder: Add Avahi based OstreeRepoFinder implementation
Philip Withnall [Tue, 18 Apr 2017 23:13:28 +0000 (00:13 +0100)]
lib/repo-finder: Add Avahi based OstreeRepoFinder implementation

This is a more complex implementation of OstreeRepoFinder which resolves
ref names to remote URIs by looking for refs advertised by peers on the
local network using DNS-SD records and mDNS (Avahi). The idea is to
allow OS and app updates to be propagated over local networks, without
the internet.

It requires an OSTree server and code to generate the DNS-SD adverts in
order to be fully functional — support for this will be added
separately.

Unit tests are included.

Includes fixes by Krzesimir Nowak <krzesimir@kinvolk.io>.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/bloom: Add an internal bloom filter implementation
Philip Withnall [Tue, 18 Apr 2017 23:11:28 +0000 (00:11 +0100)]
lib/bloom: Add an internal bloom filter implementation

This will be used in an upcoming commit. It adds a basic bloom filter
implementation, using the SipHash family of hash functions.

The implementation (including its parameter choices and hash functions)
will become a protocol detail in future, so must not be changed so that
its output is bitwise incompatible between OSTree versions.

Unit tests are included.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/repo-finder: Add mount based OstreeRepoFinder implementation
Philip Withnall [Tue, 18 Apr 2017 23:07:51 +0000 (00:07 +0100)]
lib/repo-finder: Add mount based OstreeRepoFinder implementation

This is a basic implementation of OstreeRepoFinder which resolves ref
names to remote URIs by looking for them on any currently mounted
removable storage volumes. The idea is to support OS and app updates via
USB stick.

Unit tests are included.

This bumps libostree’s maximum GLib dependency from 2.44 to 2.50 for
g_drive_is_removable(). If GLib 2.50 is not available, the call which
needs it will be omitted and the OstreeRepoFinderMount implementation
will scan all volumes (not just removable ones); this is a performance
hit, but not a functionality hit.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/repo-finder: Add config-file based OstreeRepoFinder implementation
Philip Withnall [Tue, 18 Apr 2017 23:05:06 +0000 (00:05 +0100)]
lib/repo-finder: Add config-file based OstreeRepoFinder implementation

This is a basic implementation of OstreeRepoFinder which resolves ref
names to remote URIs by looking their collection IDs up in the local
configuration of remotes who have their collection-id key set.

Unit tests are included.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/repo-finder: Add basic support for finding remote URIs by ref name
Philip Withnall [Tue, 18 Apr 2017 22:59:33 +0000 (23:59 +0100)]
lib/repo-finder: Add basic support for finding remote URIs by ref name

Add an initial OstreeRepoFinder interface (but no implementations),
which will find remote URIs by ref names and collection IDs, the
combination of which is globally unique.

The new API is used in a new ostree_repo_find_updates() function, which
resolves a list of ref names to update into a set of remote URIs to pull
them from, which can be treated as mirrors. It is an attempt to
generalise resolution of the URIs to pull from, and to generalise
determination of the order and parallelisation which they should be
downloaded from in.

Includes fixes by Krzesimir Nowak <krzesimir@kinvolk.io>.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/pull: Add collection support to ostree_repo_pull_with_options()
Philip Withnall [Wed, 7 Jun 2017 13:42:22 +0000 (14:42 +0100)]
lib/pull: Add collection support to ostree_repo_pull_with_options()

This adds a new collection-refs option of type a(sss), giving a list of
(collection ID, ref name, checksum) tuples to pull from the given remote.
This option is intended to supersede the refs and override-commit-ids
options, so is mutually exclusive with them.

This includes support for resolving the refs from the remote’s summary
file, or from its refs/heads and refs/mirrors directories.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/refs: Add methods for setting/listing collection–refs
Philip Withnall [Wed, 7 Jun 2017 13:25:59 +0000 (14:25 +0100)]
lib/refs: Add methods for setting/listing collection–refs

These are tuples of (collection ID, ref name) which are a globally-unique
form of local ref. They use OstreeCollectionRef as an identifier, and hence
need to be accessed using new API, as the existing API uses string
identifiers and sometimes accepts refspecs. Remote names are not
supported as part an OstreeCollectionRef.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/repo: Add collection ID support to OstreeRepo
Philip Withnall [Wed, 7 Jun 2017 11:38:59 +0000 (12:38 +0100)]
lib/repo: Add collection ID support to OstreeRepo

Add {get,set}_collection_id() methods to OstreeRepo and some documentation
about the concept of a collection ID which globally identifies an
upstream repository. See the documentation for more details.

This will be used in future commits. For now, the new API is marked as
experimental (--enable-experimental-api).

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/ref: Add OstreeCollectionRef type for globally unique refs
Philip Withnall [Wed, 7 Jun 2017 14:27:10 +0000 (15:27 +0100)]
lib/ref: Add OstreeCollectionRef type for globally unique refs

This is a type representing the tuple (collection ID, ref name), which is
guaranteed to be globally unique. It will be used in upcoming commits.

It introduces the concept of a ‘collection’ which is a unique, curated
set of refs which lie in the same trust domain (i.e. all signed by the
same key and validated by the same developer). Flathub might be a
collection, for example; or the set of OS refs coming from a particular
OS vendor.

It includes a function for validating collection IDs.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agolib/repo: Split out ref handling from regenerate_summary()
Philip Withnall [Fri, 9 Jun 2017 08:50:38 +0000 (09:50 +0100)]
lib/repo: Split out ref handling from regenerate_summary()

This will make some future additions to regenerate_summary() easier.
This commit introduces no functional changes.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #924
Approved by: cgwalters

8 years agotests: add a syntax-check rule for glnx_prefix_error()
Colin Walters [Fri, 23 Jun 2017 20:26:44 +0000 (16:26 -0400)]
tests: add a syntax-check rule for glnx_prefix_error()

Same as the errno variant; the colon-space `: ` thing got me in a different
patch.

Closes: #956
Approved by: jlebon

8 years agocmd/fsck: Port to new style
Colin Walters [Fri, 23 Jun 2017 20:09:32 +0000 (16:09 -0400)]
cmd/fsck: Port to new style

Happened to look at this code too, it's a straightforward port.

Closes: #955
Approved by: jlebon

8 years agolib/deltas: Port to more to new code style
Colin Walters [Fri, 23 Jun 2017 19:29:45 +0000 (15:29 -0400)]
lib/deltas: Port to more to new code style

Looking at the uses of `ostree_repo_load_file()` here.

Closes: #953
Approved by: jlebon

8 years agolib/repo: More cleanup of load_file() internals
Colin Walters [Fri, 23 Jun 2017 16:14:07 +0000 (12:14 -0400)]
lib/repo: More cleanup of load_file() internals

This is followon work from previous cleanups.  Basically
`stat_bare_content_object()` was the `fstatat()` logic
and `ostree_repo_read_bare_fd()` was the `openat()` implementation;
they duplicated some bits to find the object in staging, recurse
into parent etc.

Further, I wanted an internal-only version of this API which didn't allocate
`GFileInfo`/`GInputStream` but used a plain `fd` and `struct stat` to avoid
mallocs.

The end version here I think looks a lot nicer, since we deduplicate the various
`open()` calls in the different cases for example.

Closes: #952
Approved by: jlebon

8 years agolib/repo: Split archive/bare file parsing
Colin Walters [Thu, 22 Jun 2017 17:03:14 +0000 (13:03 -0400)]
lib/repo: Split archive/bare file parsing

Prep for future cleanup patches (in particular I want an internal-only
version at first that uses a fd+`struct stat`) to avoid allocations.

The new version avoids lots of deep nesting of conditionals as well
by hoisting the "not found" handling to an early return.

There's a bit of code duplication between the two cases but it's
quite worth the result.

Closes: #951
Approved by: jlebon

8 years agolib/core: Avoid NULL deref in content_file_parse() if out variable unset
Colin Walters [Thu, 22 Jun 2017 17:01:50 +0000 (13:01 -0400)]
lib/core: Avoid NULL deref in content_file_parse() if out variable unset

Prep for a change in `ostree_repo_load_file()`.  We would crash if a
caller had `out_file_info = NULL`, because we deref `ret_file_info`
below it.

Closes: #951
Approved by: jlebon

8 years agobuild: Always include ostree-trivial-httpd.xml in tarballs
Simon McVittie [Wed, 21 Jun 2017 09:26:03 +0000 (10:26 +0100)]
build: Always include ostree-trivial-httpd.xml in tarballs

Signed-off-by: Simon McVittie <smcv@debian.org>
Closes: #949
Approved by: cgwalters

8 years agolib/remote: Fix ‘Since’ line for OstreeRemote
Philip Withnall [Wed, 21 Jun 2017 11:54:28 +0000 (12:54 +0100)]
lib/remote: Fix ‘Since’ line for OstreeRemote

There was a typo in it when it was first introduced. Let’s not live in
the past.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #950
Approved by: cgwalters

8 years agolib/sym: Fix symbol versions for 2017.7 experimental symbols
Philip Withnall [Wed, 21 Jun 2017 11:53:48 +0000 (12:53 +0100)]
lib/sym: Fix symbol versions for 2017.7 experimental symbols

There was a typo in the group name. It should be OK to change the
version since this is all hidden behind the --enable-experimental-api
configure option.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #950
Approved by: cgwalters

8 years agolib/core: Fix ‘Since’ line for ostree_validate_remote_name()
Philip Withnall [Wed, 21 Jun 2017 11:37:12 +0000 (12:37 +0100)]
lib/core: Fix ‘Since’ line for ostree_validate_remote_name()

This was missed when cherry-picking it out of
https://github.com/ostreedev/ostree/pull/924#discussion_r123097919.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #950
Approved by: cgwalters

8 years agoci: Enable -Werror=maybe-uninitialized
Colin Walters [Tue, 20 Jun 2017 21:19:01 +0000 (17:19 -0400)]
ci: Enable -Werror=maybe-uninitialized

We don't want to inject this warning by default for every build
like the other ones in `configure.ac`, since it can be spruriously
wrong.  But there's no reason not to have a more extended set of
warnings for well-known toolchains (e.g. f25).

Closes: #943
Approved by: jlebon

8 years agorepo: Squash a gcc `-Wmaybe-uninitialized` warning
Colin Walters [Mon, 19 Jun 2017 14:54:05 +0000 (10:54 -0400)]
repo: Squash a gcc `-Wmaybe-uninitialized` warning

It's spurious, but unfortunately GCC doesn't currently understand that it will
always be set.

Closes: #943
Approved by: jlebon

8 years agolib/core: Add ostree_validate_remote_name() for remote names
Philip Withnall [Wed, 14 Jun 2017 11:28:52 +0000 (12:28 +0100)]
lib/core: Add ostree_validate_remote_name() for remote names

There are a few places in the code where ad-hoc validation was being
performed. Might as well formalise it a bit more.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #948
Approved by: cgwalters

8 years agobuild: Add ‘devel’ or ‘release’ to OSTREE_FEATURES for test-symbols.sh
Philip Withnall [Tue, 20 Jun 2017 16:38:15 +0000 (17:38 +0100)]
build: Add ‘devel’ or ‘release’ to OSTREE_FEATURES for test-symbols.sh

test-symbols.sh was looking for the DevelBuild string, which is actually
part of the output from `ostree --version`, not $OSTREE_FEATURES.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #948
Approved by: cgwalters

8 years agoci: add ci-release-build.sh
Jonathan Lebon [Mon, 19 Jun 2017 15:25:25 +0000 (11:25 -0400)]
ci: add ci-release-build.sh

Add a check that verifies that `is_release_build` is `yes` only for
release commits. And also verify that the commit message has the correct
version.

Closes: #945
Approved by: cgwalters

8 years agobuild-sys: Post-release version bump
Colin Walters [Mon, 19 Jun 2017 14:37:19 +0000 (10:37 -0400)]
build-sys: Post-release version bump

Closes: #944
Approved by: jlebon

8 years agomain: DevelBuild=yes to `ostree --version` for devel builds
Colin Walters [Mon, 19 Jun 2017 15:23:45 +0000 (11:23 -0400)]
main: DevelBuild=yes to `ostree --version` for devel builds

And use it in `test-symbols.sh`, to fix the `distcheck` case;
the previous change stopped distributing `libostree-devel.sym`
in release builds.

Closes: #944
Approved by: jlebon

8 years agoRelease 2017.7
Colin Walters [Mon, 19 Jun 2017 14:34:35 +0000 (10:34 -0400)]
Release 2017.7

Closes: #942
Approved by: jlebon